home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / haeberli / tools / palette.c < prev    next >
C/C++ Source or Header  |  1994-08-01  |  2KB  |  84 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. /*
  18.  *    palette - 
  19.  *        Display a pallete of colors.  A new palette may be selected 
  20.  *     by pointing with the mouse and clicking the left mouse button.
  21.  *
  22.  *                Paul Haeberli - 1984
  23.  *
  24.  */
  25. #include "gl.h"
  26. #include "device.h"
  27. #include "port.h"
  28. #include "stdio.h"
  29.  
  30. int c1, c2;
  31.  
  32. main(argc,argv)
  33. int argc;
  34. char **argv;
  35. {
  36.     short dev, val;
  37.     int one, two;
  38.  
  39.     c1 = 0;
  40.     c2 = c1+255;
  41.     winopen("palette");
  42.     glcompat(GLC_SOFTATTACH,TRUE);
  43.     qdevice(LEFTMOUSE);
  44.     qdevice(ESCKEY);
  45.     drawit();
  46.     while (1) {
  47.     switch(qread(&val)) {
  48.         case REDRAW:
  49.         reshapeviewport();
  50.         drawit();
  51.         break;
  52.         case LEFTMOUSE:
  53.         if (!val) {
  54.             c1 = c2;
  55.             c2 = getapixel(getvaluator(MOUSEX),getvaluator(MOUSEY));
  56.         }
  57.         drawit();
  58.         break;
  59.         case ESCKEY:
  60.         exit(0);
  61.         break;
  62.     }
  63.     }
  64. }
  65.  
  66. drawit()
  67. {
  68.     register int i;
  69.  
  70.     if (c1<c2) {
  71.     ortho2((float)c1,(float)c2+1,0.0,1.0);
  72.     for (i=c1; i<=c2; i++) {
  73.         color(i);
  74.         rectfi(i,0,i+1,1);
  75.     }
  76.     } else {
  77.     ortho2((float)c1+1,(float)c2,0.0,1.0);
  78.     for (i=c2; i<=c1; i++) {
  79.         color(i);
  80.         rectfi(i,0,i+1,1);
  81.     }
  82.     }
  83. }
  84.